	.file	"main.c"
	.text
	.def	__main;	.scl	2;	.type	32;	.endef
	.section .rdata,"dr"
.LC0:
	.ascii "%d\0"
.LC1:
	.ascii "\350\276\223\345\205\245\345\257\206\347\240\201\357\274\210"
	.ascii "20\344\275\215\345\206\205\357\274\211\357\274\232\0"
.LC2:
	.ascii "\350\276\223\345\205\245\346\230\216\346\226\207\344\277\241\346\201\257\357\274\232\0"
.LC3:
	.ascii "\345\257\206\346\226\207\344\270\272\357\274\232\12%s\12\0"
.LC4:
	.ascii "pause\0"
.LC5:
	.ascii "\350\257\267\350\276\223\345\205\245\345\257\206\346\226\207\357\274\232\0"
.LC6:
	.ascii "\346\230\216\346\226\207\357\274\232\12%s\12\0"
	.align 8
.LC7:
	.ascii "\350\257\267\350\276\223\345\205\245\351\234\200\350\246\201\345\212\240\345\257\206\347\232\204\346\226\207\344\273\266\345\220\215\357\274\210\344\273\205\351\231\220\346\226\207\346\234\254\346\226\207\344\273\266\357\274\211\357\274\232\0"
	.align 8
.LC8:
	.ascii "\350\257\267\350\276\223\345\205\245\345\257\206\347\240\201\357\274\210"
	.ascii "20\344\275\215\345\206\205\357\274\211\357\274\232\0"
.LC9:
	.ascii "rb\0"
.LC10:
	.ascii "w\0"
.LC11:
	.ascii "ab\0"
.LC12:
	.ascii "%s\0"
.LC13:
	.ascii "\12\12\12\345\212\240\345\257\206\345\256\214\346\210\220\357\274\201\12\12\0"
	.align 8
.LC14:
	.ascii "\350\257\267\350\276\223\345\205\245\351\234\200\350\246\201\350\247\243\345\257\206\347\232\204\346\226\207\344\273\266\345\220\215\357\274\210\344\273\205\351\231\220.cip\346\226\207\344\273\266\357\274\211\357\274\232\0"
.LC15:
	.ascii "\12\12\12\350\247\243\345\257\206\345\256\214\346\210\220\357\274\201\12\12\0"
.LC16:
	.ascii "\350\276\223\345\205\245\351\224\231\350\257\257\0"
.LC17:
	.ascii "cls\0"
	.text
	.globl	main
	.def	main;	.scl	2;	.type	32;	.endef
	.seh_proc	main
main:
	pushq	%rbp
	.seh_pushreg	%rbp
	pushq	%rdi
	.seh_pushreg	%rdi
	pushq	%rbx
	.seh_pushreg	%rbx
	movq	%rsp, %rbp
	.seh_setframe	%rbp, 0
	subq	$144, %rsp
	.seh_stackalloc	144
	.seh_endprologue
	call	__main
	movl	$0, -20(%rbp)
	movl	$0, -12(%rbp)
	movl	$1, -16(%rbp)
.L17:
	movl	$1, %edx
	movl	$65535, %ecx
	call	calloc
	movq	%rax, -8(%rbp)
	movl	$1, %edx
	movl	$51200, %ecx
	call	calloc
	movq	%rax, -80(%rbp)
	movl	$1, %edx
	movl	$21, %ecx
	call	calloc
	movq	%rax, -88(%rbp)
	movl	$1, %edx
	movl	$332288, %ecx
	call	calloc
	movq	%rax, -32(%rbp)
	movl	$1, %edx
	movl	$332288, %ecx
	call	calloc
	movq	%rax, -40(%rbp)
	movl	$1, %edx
	movl	$5120, %ecx
	call	calloc
	movq	%rax, -96(%rbp)
	movl	$1, %edx
	movl	$5120, %ecx
	call	calloc
	movq	%rax, -104(%rbp)
	movl	$1, %edx
	movl	$131071, %ecx
	call	calloc
	movq	%rax, -48(%rbp)
	movl	-16(%rbp), %eax
	movl	%eax, %ecx
	call	displayMenu
	leaq	-69(%rbp), %rax
	movq	%rax, %rdx
	leaq	.LC0(%rip), %rcx
	call	scanf
	call	getchar
	movzbl	-69(%rbp), %eax
	movzbl	%al, %eax
	cmpl	$6, %eax
	ja	.L2
	movl	%eax, %eax
	leaq	0(,%rax,4), %rdx
	leaq	.L4(%rip), %rax
	movl	(%rdx,%rax), %eax
	cltq
	leaq	.L4(%rip), %rdx
	addq	%rdx, %rax
	jmp	*%rax
	.section .rdata,"dr"
	.align 4
.L4:
	.long	.L2-.L4
	.long	.L9-.L4
	.long	.L8-.L4
	.long	.L7-.L4
	.long	.L6-.L4
	.long	.L5-.L4
	.long	.L3-.L4
	.text
.L9:
	leaq	.LC1(%rip), %rcx
	call	puts
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	.LC2(%rip), %rcx
	call	puts
	leaq	-80(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	-80(%rbp), %rdx
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	encryption
	cltq
	movq	%rax, -32(%rbp)
	movq	-32(%rbp), %rax
	movq	%rax, %rdx
	leaq	.LC3(%rip), %rcx
	call	printf
	leaq	.LC4(%rip), %rcx
	call	system
	jmp	.L10
.L8:
	leaq	.LC1(%rip), %rcx
	call	puts
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	.LC5(%rip), %rcx
	call	puts
	leaq	-96(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	-96(%rbp), %rdx
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	decryption
	cltq
	movq	%rax, -40(%rbp)
	movq	-40(%rbp), %rax
	movq	%rax, %rdx
	leaq	.LC6(%rip), %rcx
	call	printf
	leaq	.LC4(%rip), %rcx
	call	system
	jmp	.L10
.L7:
	leaq	.LC7(%rip), %rcx
	call	puts
	leaq	-104(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	.LC8(%rip), %rcx
	call	puts
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	-104(%rbp), %rax
	leaq	.LC9(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	movq	%rax, -56(%rbp)
	leaq	-104(%rbp), %rax
	movq	$-1, %rcx
	movq	%rax, %rdx
	movl	$0, %eax
	movq	%rdx, %rdi
	repnz scasb
	movq	%rcx, %rax
	notq	%rax
	leaq	-1(%rax), %rdx
	leaq	-104(%rbp), %rax
	addq	%rdx, %rax
	movl	$1885954862, (%rax)
	movb	$0, 4(%rax)
	leaq	-104(%rbp), %rax
	leaq	.LC10(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	leaq	-104(%rbp), %rax
	leaq	.LC11(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	movq	%rax, -64(%rbp)
	movq	-56(%rbp), %rax
	movl	$2, %r8d
	movl	$0, %edx
	movq	%rax, %rcx
	call	fseek
	movl	%eax, -12(%rbp)
	movq	-56(%rbp), %rax
	movl	$0, %r8d
	movl	$0, %edx
	movq	%rax, %rcx
	call	fseek
	jmp	.L11
.L13:
	movq	-56(%rbp), %rdx
	movq	-8(%rbp), %rax
	movq	%rdx, %r9
	movl	$32764, %r8d
	movl	$1, %edx
	movq	%rax, %rcx
	call	fread
	movq	-8(%rbp), %rdx
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	encryption
	cltq
	movq	%rax, -48(%rbp)
	movq	-64(%rbp), %rdx
	movq	-48(%rbp), %rax
	movq	%rax, %rcx
	call	fputs
	cmpl	$0, -16(%rbp)
	je	.L12
	movq	-48(%rbp), %rax
	movq	%rax, %rdx
	leaq	.LC12(%rip), %rcx
	call	printf
.L12:
	movl	-12(%rbp), %ebx
	movq	-8(%rbp), %rax
	movq	%rax, %rcx
	call	strlen
	subl	%eax, %ebx
	movl	%ebx, %eax
	movl	%eax, -12(%rbp)
	movl	$65535, %edx
	movl	$1, %ecx
	call	calloc
	movq	%rax, -8(%rbp)
	movl	$1, %edx
	movl	$131072, %ecx
	call	calloc
	movq	%rax, -48(%rbp)
.L11:
	cmpl	$0, -12(%rbp)
	jg	.L13
	leaq	.LC13(%rip), %rcx
	call	puts
	movq	-64(%rbp), %rax
	movq	%rax, %rcx
	call	fclose
	movq	-56(%rbp), %rax
	movq	%rax, %rcx
	call	fclose
	leaq	.LC4(%rip), %rcx
	call	system
	jmp	.L10
.L6:
	leaq	.LC14(%rip), %rcx
	call	puts
	leaq	-104(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	.LC8(%rip), %rcx
	call	puts
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	gets
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	strlen
	movl	%eax, -68(%rbp)
	leaq	-104(%rbp), %rax
	leaq	.LC9(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	movq	%rax, -64(%rbp)
	leaq	-104(%rbp), %rax
	movq	$-1, %rcx
	movq	%rax, %rdx
	movl	$0, %eax
	movq	%rdx, %rdi
	repnz scasb
	movq	%rcx, %rax
	notq	%rax
	leaq	-1(%rax), %rdx
	leaq	-104(%rbp), %rax
	addq	%rdx, %rax
	movl	$1954051118, (%rax)
	movb	$0, 4(%rax)
	leaq	-104(%rbp), %rax
	leaq	.LC10(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	leaq	-104(%rbp), %rax
	leaq	.LC11(%rip), %rdx
	movq	%rax, %rcx
	call	fopen
	movq	%rax, -56(%rbp)
	movq	-64(%rbp), %rax
	movl	$2, %r8d
	movl	$0, %edx
	movq	%rax, %rcx
	call	fseek
	movq	-64(%rbp), %rax
	movq	%rax, %rcx
	call	ftell
	movl	%eax, -12(%rbp)
	movq	-64(%rbp), %rax
	movl	$0, %r8d
	movl	$0, %edx
	movq	%rax, %rcx
	call	fseek
	jmp	.L14
.L16:
	movl	$65535, %eax
	cltd
	idivl	-68(%rbp)
	addl	$1, %eax
	movslq	%eax, %rdx
	movq	-64(%rbp), %rcx
	movq	-8(%rbp), %rax
	movq	%rcx, %r9
	movq	%rdx, %r8
	movl	$1, %edx
	movq	%rax, %rcx
	call	fread
	movq	-8(%rbp), %rdx
	leaq	-88(%rbp), %rax
	movq	%rax, %rcx
	call	decryption
	cltq
	movq	%rax, -48(%rbp)
	movq	-56(%rbp), %rdx
	movq	-48(%rbp), %rax
	movq	%rax, %rcx
	call	fputs
	cmpl	$0, -16(%rbp)
	je	.L15
	movq	-48(%rbp), %rax
	movq	%rax, %rdx
	leaq	.LC12(%rip), %rcx
	call	printf
.L15:
	movl	-12(%rbp), %ebx
	movq	-8(%rbp), %rax
	movq	%rax, %rcx
	call	strlen
	subl	%eax, %ebx
	movl	%ebx, %eax
	movl	%eax, -12(%rbp)
	movl	$65535, %edx
	movl	$1, %ecx
	call	calloc
	movq	%rax, -8(%rbp)
	movl	$1, %edx
	movl	$131071, %ecx
	call	calloc
	movq	%rax, -48(%rbp)
.L14:
	cmpl	$0, -12(%rbp)
	jg	.L16
	leaq	.LC15(%rip), %rcx
	call	puts
	movq	-56(%rbp), %rax
	movq	%rax, %rcx
	call	fclose
	movq	-64(%rbp), %rax
	movq	%rax, %rcx
	call	fclose
	leaq	.LC4(%rip), %rcx
	call	system
	jmp	.L10
.L5:
	cmpl	$0, -16(%rbp)
	sete	%al
	movzbl	%al, %eax
	movl	%eax, -16(%rbp)
	jmp	.L10
.L3:
	movl	$0, %ecx
	call	exit
.L2:
	leaq	.LC16(%rip), %rcx
	call	puts
	nop
.L10:
	leaq	.LC17(%rip), %rcx
	call	system
	jmp	.L17
	.seh_endproc
	.section .rdata,"dr"
.LC18:
	.ascii "+---------------------+\0"
.LC19:
	.ascii "+---1.\346\230\216\346\226\207\345\212\240\345\257\206--------+\0"
.LC20:
	.ascii "+---2.\345\257\206\346\226\207\350\247\243\345\257\206--------+\0"
.LC21:
	.ascii "+---3.\346\226\207\344\273\266\345\212\240\345\257\206--------+\0"
.LC22:
	.ascii "+---4.\346\226\207\344\273\266\350\247\243\345\257\206--------+\0"
	.align 8
.LC23:
	.ascii "+---5.\346\230\276\347\244\272\346\226\207\344\273\266\345\206\205\345\256\271-\345\274\200-+\12\0"
	.align 8
.LC24:
	.ascii "+---5.\346\230\276\347\244\272\346\226\207\344\273\266\345\206\205\345\256\271-\345\205\263-+\12\0"
.LC25:
	.ascii "+---6.\351\200\200\345\207\272------------+\0"
.LC26:
	.ascii "\350\276\223\345\205\245\345\272\217\345\217\267\351\200\211\346\213\251\346\223\215\344\275\234\357\274\232\0"
	.text
	.globl	displayMenu
	.def	displayMenu;	.scl	2;	.type	32;	.endef
	.seh_proc	displayMenu
displayMenu:
	pushq	%rbp
	.seh_pushreg	%rbp
	movq	%rsp, %rbp
	.seh_setframe	%rbp, 0
	subq	$32, %rsp
	.seh_stackalloc	32
	.seh_endprologue
	movl	%ecx, 16(%rbp)
	leaq	.LC18(%rip), %rcx
	call	puts
	leaq	.LC19(%rip), %rcx
	call	puts
	leaq	.LC20(%rip), %rcx
	call	puts
	leaq	.LC21(%rip), %rcx
	call	puts
	leaq	.LC22(%rip), %rcx
	call	puts
	cmpl	$0, 16(%rbp)
	je	.L19
	leaq	.LC23(%rip), %rcx
	call	printf
	jmp	.L20
.L19:
	leaq	.LC24(%rip), %rcx
	call	printf
.L20:
	leaq	.LC25(%rip), %rcx
	call	puts
	leaq	.LC18(%rip), %rcx
	call	puts
	leaq	.LC26(%rip), %rcx
	call	printf
	nop
	addq	$32, %rsp
	popq	%rbp
	ret
	.seh_endproc
	.ident	"GCC: (x86_64-win32-seh-rev0, Built by MinGW-W64 project) 8.1.0"
	.def	calloc;	.scl	2;	.type	32;	.endef
	.def	scanf;	.scl	2;	.type	32;	.endef
	.def	getchar;	.scl	2;	.type	32;	.endef
	.def	puts;	.scl	2;	.type	32;	.endef
	.def	gets;	.scl	2;	.type	32;	.endef
	.def	encryption;	.scl	2;	.type	32;	.endef
	.def	printf;	.scl	2;	.type	32;	.endef
	.def	system;	.scl	2;	.type	32;	.endef
	.def	decryption;	.scl	2;	.type	32;	.endef
	.def	fopen;	.scl	2;	.type	32;	.endef
	.def	fseek;	.scl	2;	.type	32;	.endef
	.def	fread;	.scl	2;	.type	32;	.endef
	.def	fputs;	.scl	2;	.type	32;	.endef
	.def	strlen;	.scl	2;	.type	32;	.endef
	.def	fclose;	.scl	2;	.type	32;	.endef
	.def	ftell;	.scl	2;	.type	32;	.endef
	.def	exit;	.scl	2;	.type	32;	.endef
	.def	puts;	.scl	2;	.type	32;	.endef
